package com.lineage.william;

import com.lineage.DatabaseFactory;
import com.lineage.server.datatables.ItemTable;
import com.lineage.server.model.Instance.L1DollInstance;
import com.lineage.server.model.Instance.L1ItemInstance;
import com.lineage.server.model.Instance.L1NpcInstance;
import com.lineage.server.model.Instance.L1PcInstance;
import com.lineage.server.serverpackets.S_ServerMessage;
import com.lineage.server.serverpackets.S_SystemMessage;
import com.lineage.server.serverpackets.ServerBasePacket;
import com.lineage.server.utils.RandomArrayList;
import com.lineage.server.world.World;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Random;
import java.util.StringTokenizer;

public class Npc_Combind {
  private static ArrayList<ArrayList<Object>> aData = new ArrayList<>();
  
  private static boolean NO_GET_DATA = false;
  
  public static final String TOKEN = ",";
  
  public static boolean forNpcQuest(String s, L1PcInstance pc, L1NpcInstance npc, int npcid, int oid) {
	ArrayList<?> aTempData = null;
    if (!NO_GET_DATA) {
      NO_GET_DATA = true;
      getData();
    } 
    int i = 0;
    while (i < aData.size()) {
    	
    	
//        aTempData = (ArrayList)aData.get(i);
//        Random _random = new Random();
//        if (aTempData.get(0) != null && ((Integer)aTempData.get(0)).intValue() == npcid && (
//          (String)aTempData.get(1)).equals(s)) {
//          ArrayList<Integer> cousumedolls = new ArrayList<>();
//          boolean enough = false;
//          int[] olddolls = (int[])aTempData.get(2);
//          int[] giveItem = (int[])aTempData.get(5);
//          int rndItem = RandomArrayList.getInt(giveItem.length);
//          int giveItemGet = giveItem[rndItem];
//          int needcount = ((Integer)aTempData.get(3)).intValue();
//          int q = 0;
//          while (q < olddolls.length) {
//            L1ItemInstance[] dolls = pc.getInventory().findItemsId(olddolls[q]);
//            if (dolls != null) {
//              int c = 0;
//              while (c < dolls.length) {
//                int itemid = dolls[c].getItemId();
//                cousumedolls.add(Integer.valueOf(itemid));
//                if (cousumedolls.size() == needcount)
//                  break; 
//                if (!pc.getDolls().isEmpty()) {
//                  Object[] dolls2 = pc.getDolls().values().toArray();
//                  Object[] array;
//                  int length = (array = dolls2).length;
//                  int j = 0;
//                  while (j < length) {
//                    Object obj = array[j];
//                    L1DollInstance doll = (L1DollInstance)obj;
//                    if (doll != null)
//                      doll.deleteDoll(); 
//                    j++;
//                  } 
//                  pc.getDolls().clear();
//                } 
//                c++;
//              } 
//            } 
//            if (cousumedolls.size() == needcount)
//              break; 
//            q++;
//          } 
      aTempData = (ArrayList<?>)aData.get(i);
      Random _random = new Random();
      if (aTempData.get(0) != null && ((Integer)aTempData.get(0)).intValue() == npcid && (
        (String)aTempData.get(1)).equals(s)) {
        ArrayList<Integer> cousumedolls = new ArrayList<>();
        boolean enough = false;
        int[] ownItem = (int[])aTempData.get(2);
        int[] giveItem = (int[])aTempData.get(5);
        int rndGItem = RandomArrayList.getInt(giveItem.length);
        int giveItemGet = giveItem[rndGItem];
        int needcount = ((Integer)aTempData.get(3)).intValue();
        int q = 0;

		while (q < ownItem.length) {
			switch ((String) aTempData.get(13)) {
			case "doll":
//				L1ItemInstance[] dolls = pc.getInventory().findItemsId(ownItem[q]);
//				if (dolls != null) {
//					int c = 0;
//					while (c < dolls.length) {
//						int itemid = dolls[c].getItemId();
//						cousumedolls.add(Integer.valueOf(itemid));
//						if (cousumedolls.size() == needcount)
//							break;
//						if (!pc.getDolls().isEmpty()) {
//							Object[] dolls2 = pc.getDolls().values().toArray();
//							int length = dolls2.length;
//							int j = 0;
//							while (j < length) {
//								Object obj = dolls2[j];
//								L1DollInstance doll = (L1DollInstance) obj;
//								if (doll != null)
//									doll.deleteDoll();
//								j++;
//							}
//							pc.getDolls().clear();
//						}
//						c++;
//					}
//				}
//				if (cousumedolls.size() == needcount)
//					break;
//				break;
				L1ItemInstance[] dolls = pc.getInventory().findItemsId(ownItem[q]);
				if (dolls != null) {
					
					for (int c = 0;c < dolls.length;c++) {
						int itemid = dolls[c].getItemId();						
						if (dolls[c].isEquipped()) {						
							continue;
						} 
						if (cousumedolls.size() == needcount)
							break;
						cousumedolls.add(Integer.valueOf(itemid));

					}
				}
				if (cousumedolls.size() == needcount) {
					break;
				}
				break;				
				
				
				
				
			case "card":
				L1ItemInstance[] cards = pc.getInventory().findItemsId(ownItem[q]);
				if (cards != null) {
					
					for (int c = 0;c < cards.length;c++) {
						int itemid = cards[c].getItemId();						
						if (cards[c].isEquipped()) {						
							continue;
						} 
						if (cousumedolls.size() == needcount)
							break;
						cousumedolls.add(Integer.valueOf(itemid));

					}
				}
				if (cousumedolls.size() == needcount) {
					break;
				}
				break;
			default:
				break;
			}
			q++;
		}
			

        if (cousumedolls.size() == needcount) {
          enough = true;
          if (pc.getInventory().consumeItemsIdArray(cousumedolls))
            if (_random.nextInt(100) + 1 < ((Integer)aTempData.get(4)).intValue()) {
              if ((String)aTempData.get(8) != null)
                pc.sendPackets((ServerBasePacket)new S_SystemMessage("\\fT" + (String)aTempData.get(8))); 
              L1ItemInstance item = ItemTable.get().createItem(giveItemGet);
              item.setIdentified(true);
              pc.getInventory().storeItem(item);
              pc.sendPackets(
                  (ServerBasePacket)new S_ServerMessage(143, npc.getNpcTemplate().get_name(), item.getLogName()));
              if ((String)aTempData.get(9) != null)
                World.get().broadcastPacketToAll((ServerBasePacket)new S_SystemMessage(
                      String.format((String)aTempData.get(9), new Object[] { pc.getName(), item.getLogName() }))); 
              pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 0);
            } else {
              if (((Integer)aTempData.get(11)).intValue() != 0) {
                if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 0) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 1);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 1) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 2);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 2) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 3);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 3) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 4);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 4) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 5);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 5) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 6);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 6) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 7);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 7) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 8);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 8) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 9);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 9) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 10);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 10) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 11);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 11) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 12);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 12) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 13);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 13) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 14);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 14) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 15);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 15) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 16);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 16) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 17);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 17) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 18);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 18) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 19);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 19) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 20);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 20) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 21);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 21) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 22);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 22) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 23);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 23) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 24);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 24) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 25);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 25) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 26);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 26) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 27);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 27) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 28);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 28) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 29);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 29) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 30);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 30) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 31);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 31) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 32);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 32) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 33);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 33) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 34);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 34) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 35);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 35) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 36);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 36) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 37);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 37) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 38);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 38) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 39);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 39) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 40);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 40) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 41);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 41) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 42);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 42) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 43);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 43) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 44);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 44) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 45);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 45) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 46);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 46) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 47);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 47) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 48);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 48) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 49);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 49) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 50);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 50) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 51);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 51) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 52);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 52) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 53);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 53) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 54);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 54) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 55);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 55) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 56);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 56) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 57);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 57) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 58);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 58) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 59);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 59) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 60);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 60) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 61);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 61) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 62);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 62) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 63);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 63) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 64);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 64) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 65);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 65) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 66);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 66) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 67);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 67) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 68);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 68) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 69);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 69) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 70);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 70) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 71);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 71) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 72);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 72) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 73);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 73) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 74);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 74) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 75);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 75) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 76);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 76) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 77);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 77) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 78);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 78) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 79);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 79) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 80);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 80) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 81);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 81) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 82);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 82) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 83);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 83) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 84);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 84) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 85);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 85) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 86);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 86) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 87);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 87) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 88);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 88) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 89);
                } else if (pc.getQuest().get_step(((Integer)aTempData.get(11)).intValue()) == 89) {
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 90);
                } 
                if (pc.getQuest().get_step((
                    (Integer)aTempData.get(11)).intValue()) == ((Integer)aTempData.get(12))
                  .intValue()) {
                  if ((String)aTempData.get(8) != null)
                    pc.sendPackets((ServerBasePacket)new S_SystemMessage("\\fT" + (String)aTempData.get(8))); 
                  L1ItemInstance item = ItemTable.get().createItem(giveItemGet);
                  item.setIdentified(true);
                  pc.getInventory().storeItem(item);
                  pc.sendPackets((ServerBasePacket)new S_ServerMessage(143, npc.getNpcTemplate().get_name(), 
                        item.getLogName()));
                  if ((String)aTempData.get(9) != null)
                    World.get().broadcastPacketToAll((ServerBasePacket)new S_SystemMessage(
                          String.format((String)aTempData.get(9), new Object[] { pc.getName(), item.getLogName() }))); 
                  pc.getQuest().set_step(((Integer)aTempData.get(11)).intValue(), 0);
                  return false;
                } 
              } 
              if ((String)aTempData.get(7) != null)
                pc.sendPackets((ServerBasePacket)new S_SystemMessage("\\fY" + (String)aTempData.get(7))); 
              if (((Integer)aTempData.get(10)).intValue() == 1) {
                L1ItemInstance item2 = ItemTable.get()
                  .createItem(((Integer)cousumedolls.get(_random.nextInt(cousumedolls.size()))).intValue());
                item2.setIdentified(true);
                pc.getInventory().storeItem(item2);
                pc.sendPackets((ServerBasePacket)new S_SystemMessage("\\fY失败退还:" + item2.getViewName()));
              } 
              String[] info = new String[2];
              info[1] = String.valueOf(pc.getQuest());
            }  
        } 
        if (!enough && (String)aTempData.get(6) != null)
          pc.sendPackets((ServerBasePacket)new S_SystemMessage("\\fY" + (String)aTempData.get(6))); 
      } 
      i++;
    } 
    return false;
  }
  
  private static void getData() {
    Connection con = null;
    try {
      con = DatabaseFactory.get().getConnection();
      Statement stat = con.createStatement();
      ResultSet rset = stat.executeQuery("SELECT * FROM w_天M合成系统");
      ArrayList<Object> aReturn = null;
//      String sTemp = null;
      if (rset != null)
        while (rset.next()) {
          aReturn = new ArrayList<Object>();
          aReturn.add(0, new Integer(rset.getInt("npcid")));
//          sTemp = rset.getString("action");
          aReturn.add(1, rset.getString("action"));
          aReturn.add(2, getArray(rset.getString("合成需求编号"), ",", 1));
          aReturn.add(3, Integer.valueOf(rset.getInt("物品合成数量")));
          aReturn.add(4, Integer.valueOf(rset.getInt("机率")));
          aReturn.add(5, getArray(rset.getString("获取合成编号"), ",", 1));
          aReturn.add(6, rset.getString("物品不足Msg"));
          aReturn.add(7, rset.getString("失败Msg"));
          aReturn.add(8, rset.getString("成功Msg"));
          aReturn.add(9, rset.getString("世界广播"));
          aReturn.add(10, Integer.valueOf(rset.getInt("失败是否退还")));
          aReturn.add(11, Integer.valueOf(rset.getInt("保底纪录编号")));
          aReturn.add(12, Integer.valueOf(rset.getInt("保底次数")));
          aReturn.add(13, rset.getString("type"));
          aData.add(aReturn);
        }  
      if (con != null && !con.isClosed())
        con.close(); 
    } catch (Exception exception) {}
  }
  
  private static Object getArray(String s, String sToken, int iType) {
    StringTokenizer st = new StringTokenizer(s, sToken);
    int iSize = st.countTokens();
    String sTemp = null;
    if (iType == 1) {
      int[] iReturn = new int[iSize];
      int i = 0;
      while (i < iSize) {
        sTemp = st.nextToken();
        iReturn[i] = Integer.parseInt(sTemp);
        i++;
      } 
      return iReturn;
    } 
    if (iType == 2) {
      String[] sReturn = new String[iSize];
      int i = 0;
      while (i < iSize) {
        sTemp = st.nextToken();
        sReturn[i] = sTemp;
        i++;
      } 
      return sReturn;
    } 
    if (iType == 3) {
      String sReturn2 = null;
      int i = 0;
      while (i < iSize) {
        sTemp = sReturn2 = st.nextToken();
        i++;
      } 
      return sReturn2;
    } 
    return null;
  }
}
